Previous: Template elements, Up: Capture templates

##### 9.1.3.2 Template expansion

In the template itself, special `%`-escapes1 allow dynamic insertion of content:

         %^{prompt}  prompt the user for a string and replace this sequence with it.
                     You may specify a default value and a completion table with
                     %^{prompt|default|completion2|completion3...}
                     The arrow keys access a prompt-specific history.
         %a          annotation, normally the link created with org-store-link
         %A          like %a, but prompt for the description part
         %i          initial content, the region when capture is called while the
                     region is active.
                     The entire text will be indented like %i itself.
         %t          timestamp, date only
         %T          timestamp with date and time
         %u, %U      like the above, but inactive timestamps
         %^t         like %t, but prompt for date.  Similarly %^T, %^u, %^U
                     You may define a prompt like %^{Birthday}t
         %n          user name (taken from user-full-name)
         %c          Current kill ring head.
         %x          Content of the X clipboard.
         %^C         Interactive selection of which kill or clip to use.
         %^L         Like %^C, but insert as link.
         %k          title of the currently clocked task
         %K          link to the currently clocked task
         %^g         prompt for tags, with completion on tags in target file.
         %^G         prompt for tags, with completion all tags in all agenda files.
         %^{prop}p   Prompt the user for a value for property prop
         %:keyword   specific information for certain link types, see below
         %[file]     insert the contents of the file given by file
         %(sexp)     evaluate Elisp sexp and replace with the result

For specific link types, the following keywords will be defined2:

         Link type          |  Available keywords
         -------------------+----------------------------------------------
         bbdb                    |  %:name %:company
         irc                     |  %:server %:port %:nick
         vm, wl, mh, mew, rmail  |  %:type %:subject %:message-id
                                 |  %:from %:fromname %:fromaddress
                                 |  %:to   %:toname   %:toaddress
                                 |  %:date (message date header field)
                                 |  %:date-timestamp (date as active timestamp)
                                 |  %:date-timestamp-inactive (date as inactive timestamp)
                                 |  %:fromto (either "to NAME" or "from NAME")3
         gnus                    |  %:group, for messages also all email fields
         w3, w3m                 |  %:url
         info                    |  %:file %:node
         calendar                |  %:date

To place the cursor after template expansion use:

         %?          After completing the template, position cursor here.

#### Footnotes

[1] If you need one of these sequences literally, escape the `%` with a backslash.

[2] If you define your own link types (see Adding hyperlink types), any property you store with `org-store-link-props` can be accessed in capture templates in a similar way.

[3] This will always be the other, not the user. See the variable `org-from-is-user-regexp`.