summaryrefslogtreecommitdiff
path: root/apidocs/icalrecur_8h.html
diff options
context:
space:
mode:
Diffstat (limited to 'apidocs/icalrecur_8h.html')
-rw-r--r--apidocs/icalrecur_8h.html452
1 files changed, 452 insertions, 0 deletions
diff --git a/apidocs/icalrecur_8h.html b/apidocs/icalrecur_8h.html
new file mode 100644
index 00000000..1d13674f
--- /dev/null
+++ b/apidocs/icalrecur_8h.html
@@ -0,0 +1,452 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>Libical: icalrecur.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Libical
+ &#160;<span id="projectnumber">1.0</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b7a0ea939f6e83384f3c571d31a84be9.html">libical</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">icalrecur.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Routines for dealing with recurring time.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;time.h&gt;</code><br/>
+<code>#include &quot;<a class="el" href="icaltime_8h_source.html">icaltime.h</a>&quot;</code><br/>
+</div>
+<p><a href="icalrecur_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a88c777bba1c5287ec7a262a8cf140209"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88c777bba1c5287ec7a262a8cf140209"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_DAY_SIZE</b>&#160;&#160;&#160;364 /* 7 days * 52 weeks */</td></tr>
+<tr class="separator:a88c777bba1c5287ec7a262a8cf140209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7660eef516049982e6ea1aa56d7a14f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7660eef516049982e6ea1aa56d7a14f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_HOUR_SIZE</b>&#160;&#160;&#160;25</td></tr>
+<tr class="separator:af7660eef516049982e6ea1aa56d7a14f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1328acf3383993b85d9819702a94dd8a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1328acf3383993b85d9819702a94dd8a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_MINUTE_SIZE</b>&#160;&#160;&#160;61</td></tr>
+<tr class="separator:a1328acf3383993b85d9819702a94dd8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ba206a293eca6a045c9e24b75516528"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ba206a293eca6a045c9e24b75516528"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_MONTH_SIZE</b>&#160;&#160;&#160;13</td></tr>
+<tr class="separator:a3ba206a293eca6a045c9e24b75516528"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d6e5cf6656a21e1fede23a4af633f31"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d6e5cf6656a21e1fede23a4af633f31"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_MONTHDAY_SIZE</b>&#160;&#160;&#160;32</td></tr>
+<tr class="separator:a7d6e5cf6656a21e1fede23a4af633f31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acec51b2d651f24e31b00627b60b12728"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#acec51b2d651f24e31b00627b60b12728">ICAL_BY_SECOND_SIZE</a>&#160;&#160;&#160;61</td></tr>
+<tr class="separator:acec51b2d651f24e31b00627b60b12728"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a02214312ee862af943de714ad30c1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a02214312ee862af943de714ad30c1f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_SETPOS_SIZE</b>&#160;&#160;&#160;367</td></tr>
+<tr class="separator:a8a02214312ee862af943de714ad30c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a213222b2455537fceb2814e9e084e95a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a213222b2455537fceb2814e9e084e95a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_WEEKNO_SIZE</b>&#160;&#160;&#160;54</td></tr>
+<tr class="separator:a213222b2455537fceb2814e9e084e95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad632e88ecae484b09c8ca4be1bfd58b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad632e88ecae484b09c8ca4be1bfd58b"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>ICAL_BY_YEARDAY_SIZE</b>&#160;&#160;&#160;367</td></tr>
+<tr class="separator:aad632e88ecae484b09c8ca4be1bfd58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a15b0ec0400bb64fcfd625d5a5511db7f"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="structicalrecur__iterator__impl.html">icalrecur_iterator_impl</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a></td></tr>
+<tr class="separator:a15b0ec0400bb64fcfd625d5a5511db7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6ee5f3c0bc53d00b6fa3f4c1c062ae0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa6ee5f3c0bc53d00b6fa3f4c1c062ae0"></a>
+typedef enum <br class="typebreak"/>
+icalrecurrencetype_frequency&#160;</td><td class="memItemRight" valign="bottom"><b>icalrecurrencetype_frequency</b></td></tr>
+<tr class="separator:aa6ee5f3c0bc53d00b6fa3f4c1c062ae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2321c0974a3fbeeb9b5d635e697b7b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2321c0974a3fbeeb9b5d635e697b7b7"></a>
+typedef enum <br class="typebreak"/>
+icalrecurrencetype_weekday&#160;</td><td class="memItemRight" valign="bottom"><b>icalrecurrencetype_weekday</b></td></tr>
+<tr class="separator:aa2321c0974a3fbeeb9b5d635e697b7b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>ICAL_RECURRENCE_ARRAY_MAX</b> = 0x7f7f,
+<b>ICAL_RECURRENCE_ARRAY_MAX_BYTE</b> = 0x7f
+ }</td></tr>
+<tr class="separator:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a203e6ca308804a67ff343837e7c11a61"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>icalrecurrencetype_frequency</b> { <br/>
+&#160;&#160;<b>ICAL_SECONDLY_RECURRENCE</b> =0,
+<b>ICAL_MINUTELY_RECURRENCE</b> =1,
+<b>ICAL_HOURLY_RECURRENCE</b> =2,
+<b>ICAL_DAILY_RECURRENCE</b> =3,
+<br/>
+&#160;&#160;<b>ICAL_WEEKLY_RECURRENCE</b> =4,
+<b>ICAL_MONTHLY_RECURRENCE</b> =5,
+<b>ICAL_YEARLY_RECURRENCE</b> =6,
+<b>ICAL_NO_RECURRENCE</b> =7
+<br/>
+ }</td></tr>
+<tr class="separator:a203e6ca308804a67ff343837e7c11a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d3df238238f2689b2cc48b162a9507b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>icalrecurrencetype_weekday</b> { <br/>
+&#160;&#160;<b>ICAL_NO_WEEKDAY</b>,
+<b>ICAL_SUNDAY_WEEKDAY</b>,
+<b>ICAL_MONDAY_WEEKDAY</b>,
+<b>ICAL_TUESDAY_WEEKDAY</b>,
+<br/>
+&#160;&#160;<b>ICAL_WEDNESDAY_WEEKDAY</b>,
+<b>ICAL_THURSDAY_WEEKDAY</b>,
+<b>ICAL_FRIDAY_WEEKDAY</b>,
+<b>ICAL_SATURDAY_WEEKDAY</b>
+<br/>
+ }</td></tr>
+<tr class="separator:a0d3df238238f2689b2cc48b162a9507b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a488780da8434731021af8d791b087b77"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#a488780da8434731021af8d791b087b77">icalrecur_expand_recurrence</a> (char *rule, time_t start, int count, time_t *array)</td></tr>
+<tr class="separator:a488780da8434731021af8d791b087b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a758c7b3a75d67c28faa7485c45c48f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a758c7b3a75d67c28faa7485c45c48f"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>icalrecur_iterator_decrement_count</b> (<a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a> *)</td></tr>
+<tr class="separator:a8a758c7b3a75d67c28faa7485c45c48f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14daf9df313fdad9f536a7d9242b4cdc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#a14daf9df313fdad9f536a7d9242b4cdc">icalrecur_iterator_free</a> (<a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a> *)</td></tr>
+<tr class="separator:a14daf9df313fdad9f536a7d9242b4cdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3259c2b9b03763d8ee02868816d6261a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#a3259c2b9b03763d8ee02868816d6261a">icalrecur_iterator_new</a> (struct <a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a> rule, struct <a class="el" href="structicaltimetype.html">icaltimetype</a> dtstart)</td></tr>
+<tr class="separator:a3259c2b9b03763d8ee02868816d6261a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e10af320612cd7ab8c6fb6177ade3e3"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structicaltimetype.html">icaltimetype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#a2e10af320612cd7ab8c6fb6177ade3e3">icalrecur_iterator_next</a> (<a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a> *)</td></tr>
+<tr class="separator:a2e10af320612cd7ab8c6fb6177ade3e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad60e4e0c33acf7f90dbbf891e2326a8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad60e4e0c33acf7f90dbbf891e2326a8e"></a>
+icalrecurrencetype_weekday&#160;</td><td class="memItemRight" valign="bottom"><b>icalrecur_string_to_weekday</b> (const char *str)</td></tr>
+<tr class="separator:ad60e4e0c33acf7f90dbbf891e2326a8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45f67a448ee73729ad1203276434ee52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45f67a448ee73729ad1203276434ee52"></a>
+char *&#160;</td><td class="memItemRight" valign="bottom"><b>icalrecurrencetype_as_string</b> (struct <a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a> *recur)</td></tr>
+<tr class="separator:a45f67a448ee73729ad1203276434ee52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27204e0666e4e4e3b7d2ef0f159ac5a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a27204e0666e4e4e3b7d2ef0f159ac5a3"></a>
+char *&#160;</td><td class="memItemRight" valign="bottom"><b>icalrecurrencetype_as_string_r</b> (struct <a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a> *recur)</td></tr>
+<tr class="separator:a27204e0666e4e4e3b7d2ef0f159ac5a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1bf76a6221d8aa78387b20a537491ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1bf76a6221d8aa78387b20a537491ce"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>icalrecurrencetype_clear</b> (struct <a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a> *r)</td></tr>
+<tr class="separator:ad1bf76a6221d8aa78387b20a537491ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96c160e7e6b16e0e369c540f2ee164c7"><td class="memItemLeft" align="right" valign="top">enum icalrecurrencetype_weekday&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#a96c160e7e6b16e0e369c540f2ee164c7">icalrecurrencetype_day_day_of_week</a> (short day)</td></tr>
+<tr class="separator:a96c160e7e6b16e0e369c540f2ee164c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa730e9ac327064456902076b718400f4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#aa730e9ac327064456902076b718400f4">icalrecurrencetype_day_position</a> (short day)</td></tr>
+<tr class="separator:aa730e9ac327064456902076b718400f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e8ebcf355ba22299f553f8f5e657926"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="icalrecur_8h.html#a0e8ebcf355ba22299f553f8f5e657926">icalrecurrencetype_from_string</a> (const char *str)</td></tr>
+<tr class="separator:a0e8ebcf355ba22299f553f8f5e657926"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Routines for dealing with recurring time. </p>
+<p>How to use:</p>
+<p>1) Get a rule and a start time from a component</p>
+<div class="fragment"><div class="line">icalproperty rrule;</div>
+<div class="line"><span class="keyword">struct </span><a class="code" href="structicalrecurrencetype.html">icalrecurrencetype</a> recur;</div>
+<div class="line"><span class="keyword">struct </span><a class="code" href="structicaltimetype.html">icaltimetype</a> dtstart;</div>
+<div class="line"></div>
+<div class="line">rrule = icalcomponent_get_first_property(comp,ICAL_RRULE_PROPERTY);</div>
+<div class="line">recur = icalproperty_get_rrule(rrule);</div>
+<div class="line">start = icalproperty_get_dtstart(dtstart);</div>
+</div><!-- fragment --><p>Or, just make them up:</p>
+<div class="fragment"><div class="line">recur = <a class="code" href="icalrecur_8h.html#a0e8ebcf355ba22299f553f8f5e657926">icalrecurrencetype_from_string</a>(<span class="stringliteral">&quot;FREQ=YEARLY;BYDAY=SU,WE&quot;</span>);</div>
+<div class="line">dtstart = <a class="code" href="icaltime_8h.html#a1b66b9f52a9823b95e4cd33f9dd9b8e5" title="Contructor.">icaltime_from_string</a>(<span class="stringliteral">&quot;19970101T123000&quot;</span>)</div>
+</div><!-- fragment --><p>2) Create an iterator</p>
+<div class="fragment"><div class="line"><a class="code" href="structicalrecur__iterator__impl.html">icalrecur_iterator</a>* ritr;</div>
+<div class="line">ritr = <a class="code" href="icalrecur_8h.html#a3259c2b9b03763d8ee02868816d6261a">icalrecur_iterator_new</a>(recur,start);</div>
+</div><!-- fragment --><p>3) Iterator over the occurrences</p>
+<div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structicaltimetype.html">icaltimetype</a> next;</div>
+<div class="line"><span class="keywordflow">while</span> (next = <a class="code" href="icalrecur_8h.html#a2e10af320612cd7ab8c6fb6177ade3e3">icalrecur_iterator_next</a>(ritr) </div>
+<div class="line"> &amp;&amp; !<a class="code" href="icaltime_8h.html#a97483d9daf2fc8f8b1bbdc0c75ced095">icaltime_is_null_time</a>(next){</div>
+<div class="line"> Do something with next</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Note that that the time returned by icalrecur_iterator_next is in whatever timezone that dtstart is in. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="acec51b2d651f24e31b00627b60b12728"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define ICAL_BY_SECOND_SIZE&#160;&#160;&#160;61</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Recurrence type routines </p>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a15b0ec0400bb64fcfd625d5a5511db7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct <a class="el" href="structicalrecur__iterator__impl.html">icalrecur_iterator_impl</a> <a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Recurrence iteration routines </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a488780da8434731021af8d791b087b77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int icalrecur_expand_recurrence </td>
+ <td>(</td>
+ <td class="paramtype">char *&#160;</td>
+ <td class="paramname"><em>rule</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">time_t&#160;</td>
+ <td class="paramname"><em>start</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>count</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">time_t *&#160;</td>
+ <td class="paramname"><em>array</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Fills array up with at most 'count' time_t values, each representing an occurrence time in seconds past the POSIX epoch</p>
+<p>Fill an array with the 'count' number of occurrences generated by the rrule. Note that the times are returned in UTC, but the times are calculated in local time. YOu will have to convert the results back into local time before using them. </p>
+
+</div>
+</div>
+<a class="anchor" id="a14daf9df313fdad9f536a7d9242b4cdc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void icalrecur_iterator_free </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a> *&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Free the iterator </p>
+
+</div>
+</div>
+<a class="anchor" id="a3259c2b9b03763d8ee02868816d6261a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a>* icalrecur_iterator_new </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a>&#160;</td>
+ <td class="paramname"><em>rule</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct <a class="el" href="structicaltimetype.html">icaltimetype</a>&#160;</td>
+ <td class="paramname"><em>dtstart</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Create a new recurrence rule iterator </p>
+
+</div>
+</div>
+<a class="anchor" id="a2e10af320612cd7ab8c6fb6177ade3e3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="structicaltimetype.html">icaltimetype</a> icalrecur_iterator_next </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="icalrecur_8h.html#a15b0ec0400bb64fcfd625d5a5511db7f">icalrecur_iterator</a> *&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Get the next occurrence from an iterator </p>
+
+</div>
+</div>
+<a class="anchor" id="a96c160e7e6b16e0e369c540f2ee164c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week </td>
+ <td>(</td>
+ <td class="paramtype">short&#160;</td>
+ <td class="paramname"><em>day</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Array Encoding</p>
+<p>The 'day' element of the by_day array is encoded to allow representation of both the day of the week ( Monday, Tueday), but also the Nth day of the week ( First tuesday of the month, last thursday of the year) These routines decode the day values 1 == Monday, etc.</p>
+<p>The 'day' element of icalrecurrencetype_weekday is encoded to allow representation of both the day of the week ( Monday, Tueday), but also the Nth day of the week ( First tuesday of the month, last thursday of the year) These routines decode the day values.</p>
+<p>The day's position in the period ( Nth-ness) and the numerical value of the day are encoded together as: pos*7 + dow</p>
+<p>A position of 0 means 'any' or 'every' </p>
+
+</div>
+</div>
+<a class="anchor" id="aa730e9ac327064456902076b718400f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int icalrecurrencetype_day_position </td>
+ <td>(</td>
+ <td class="paramtype">short&#160;</td>
+ <td class="paramname"><em>day</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>0 == any of day of week. 1 == first, 2 = second, -2 == second to last, etc </p>
+
+</div>
+</div>
+<a class="anchor" id="a0e8ebcf355ba22299f553f8f5e657926"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="structicalrecurrencetype.html">icalrecurrencetype</a> icalrecurrencetype_from_string </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">read</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>Recurrance rule parser Convert between strings and recurrencetype structures. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.3.1
+</small></address>
+</body>
+</html>